package Quiz;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 * 주어진 문자열 데이터를 가지고 실행결과와 같이 출력되도록 코드를 완성하세요.
            데이터의 형식은 문제, 답, 선택지의 순서로 되어 있으며 구분자는 `(숫자1옆의 키)입니다.
 */
public class QuizEx1 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		String[] data = { 
                "다음 중 키워드가 아닌 것은?`2`final`True`if`public", 
                "다음 중 자바의 연산자가 아닌 것은?`5`&`|`++`!=`/`^", 
                "다음 중 메서드의 반환값이 없음을 의미하는 키워드는?`1`void`null`false", 
        };
		 shuffle(data); // 문제를 섞는다.
		int cnt=0;
		for(int i=0;i<data.length;i++) {
            // 1. String클래스의 String[] split(String regex, int limit)를 사용해서 문제와 선택지를 나누세요.
			String[] tmp=data[i].split("`", 3);
			String question = tmp[0];
			String answer = tmp[1];
			String[] choices = tmp[2].split("`"); 
			
			shuffle(choices); // 선택지를 섞는다.
            // 2. 문제를 출력하세요.
			System.out.println("["+(i+1)+"] "+question);
            // 3. 선택지를 나누기 위해 String[] split(String regex)를 사용하세요.
            // 4.반복문을 이용해서 선택지를 출력하세요.
			
			for(int j=0; j<choices.length;j++){
				System.out.print((j+1)+". "+choices[j]+"\t");
				
			}
			System.out.println();
			
			System.out.println("답: ");
			InputStreamReader ins = new InputStreamReader(System.in);
			BufferedReader br = new BufferedReader(ins);

			if(br.readLine().equals(answer)){
				cnt++;
				System.out.println("정답");
			}
			
			
		} 
		System.out.println("정답개수/전체문항수: " + cnt+"/"+data.length);
	}
    public static void shuffle(String[] data) {
        // 코드를 완성하세요.
        //  1. 배열data의 개수가 0보다 같거나 적으면 메서드 전체를 빠져나간다.
        //  2. 선택지의 순서를 뒤바꾼다. 반복문과 Math.random()사용
    	
    	for(int i=0;i<data.length;i++){
    		int idx=(int)(Math.random()*data.length);
    		String tmp=	data[0];
    		data[0]=data[idx];
    		data[idx]=tmp;
    		//System.out.println(data[idx]);
    	}
   } // shuffle()

}
